"""
styles.py
定义应用程序中使用的所有样式

样式使用说明：
1. 按钮样式：
   - FLOAT_BUTTON_STYLE: 用于悬浮窗的圆形按钮
   - SETTINGS_BUTTON_STYLE: 用于所有设置相关的方形按钮

2. 表单样式：
   - LABEL_STYLE: 用于所有标签文本
   - INPUT_STYLE: 用于所有输入框
   - COMBOBOX_STYLE: 用于下拉选择框

3. 聊天界面样式：
   - USER_XXX_STYLE: 用于用户消息的显示
   - ASSISTANT_XXX_STYLE: 用于AI助手消息的显示
   - CODE_BLOCK_XXX_STYLE: 用于代码块的显示
"""

# 浮动按钮样式
# 使用位置：floating_window.py 中的 toggle_button
# 用途：创建圆形的悬浮按钮，绿色背景，白色文字
FLOAT_BUTTON_STYLE = """
    QPushButton {
        background-color: #4CAF50;
        color: white;
        border-radius: 25px;
        font-size: 16px;
        font-weight: bold;
    }
    QPushButton:hover {
        background-color: #45a049;
    }
"""

# 设置按钮样式
# 使用位置：
# 1. ai_models.py 中的 ModelSelector 类：添加/编辑/删除按钮
# 2. ai_models.py 中的 ModelSettingsWindow 类：保存按钮
SETTINGS_BUTTON_STYLE = """
    QPushButton {
        background-color: #4CAF50;
        color: white;
        border-radius: 4px;
        font-size: 13px;
    }
    QPushButton:hover {
        background-color: #45a049;
    }
"""

# 标签文本样式
# 使用位置：
# 1. ai_models.py 中的 ModelSelector 类："选择模型:"标签
# 2. ai_models.py 中的 ModelSettingsWindow 类：所有表单标签
LABEL_STYLE = "font-size: 12px;"

# 输入框样式
# 使用位置：ai_models.py 中的 ModelSettingsWindow 类
# 应用于：模型名称、API密钥、Base URL 三个输入框
INPUT_STYLE = """
    QLineEdit {
        padding: 5px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }
    QLineEdit:focus {
        border-color: #1890ff;
    }
"""

# 下拉框样式
# 使用位置：ai_models.py 中的 ModelSelector 类
# 用途：模型选择下拉框的样式
COMBOBOX_STYLE = """
    QComboBox {
        padding: 5px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }
    QComboBox:hover {
        border-color: #1890ff;
    }
"""

# 用户消息气泡容器样式
# 使用位置：chat_display.py 中的 _create_user_message_html 方法
# 用途：包裹用户消息的外层容器
USER_BUBBLE_STYLE = """
    margin: 10px 0 5px 0;
    text-align: left;
    width: 100%;
    clear: both;
"""

# 用户消息气泡样式
# 使用位置：chat_display.py 中的 _create_user_message_html 方法
# 用途：用户消息的绿色气泡
USER_MESSAGE_STYLE = """
    background-color: #95EC69;
    border-radius: 10px;
    padding: 8px 12px;
    display: inline-block;
    margin-left: 10px;
"""

# 用户消息分隔线样式
# 使用位置：chat_display.py 中的 _create_user_message_html 方法
# 用途：用户消息之间的分隔线
USER_SEPARATOR_STYLE = """
    border-bottom: 1px solid #E6E6E6;
    margin: 10px 20px;
    clear: both;
"""

# AI助手消息容器样式
# 使用位置：chat_display.py 中的 _create_assistant_message_html 方法
# 用途：包裹AI助手消息的外层容器
ASSISTANT_BUBBLE_STYLE = """
    margin: 1px 0 1px 0;
    text-align: left;
    width: 100%;
    clear: both;
    display: block;
"""

# AI助手消息气泡样式
# 使用位置：chat_display.py 中的 _create_assistant_message_html 方法
# 用途：AI助手消息的白色气泡
ASSISTANT_MESSAGE_STYLE = """
    display: inline-block;
    background-color: #FFFFFF;
    border-radius: 1px;
    padding: 1px 1px;
    border: 1px solid #E6E6E6;
    margin-left: 1px;
"""

# AI助手流式响应容器样式
# 用位置：chat_display.py 中的 display_assistant_message 方法
# 用途：流式响应时的临时消息容器
ASSISTANT_CHUNK_STYLE = """
    margin: 1px 0 1px 0;
    text-align: left;
    width: 100%;
    clear: both;
    display: block;
"""

# AI助手流式响应气泡样式
# 使用位置：chat_display.py 中的 display_assistant_message 方法
# 用途：流式响应时的临时消息气泡
ASSISTANT_CHUNK_MESSAGE_STYLE = """
    display: inline-block;
    background-color: #FFFFFF;
    border-radius: 1px;
    padding: 1px 1px;
    border: 1px solid #E6E6E6;
    margin-left: 1px;
"""

# 代码块容器样式
# 使用位置：chat_display.py 中的 _create_code_block_html 方法
# 用途：包裹整个代码块的容器
CODE_BLOCK_CONTAINER_STYLE = """
    background-color: #f6f8fa;
    border-radius: 1px;
    margin: 1px 0;
    border: 1px solid #e1e4e8;
    overflow: hidden;
"""

# 代码块标题样式
# 使用位置：chat_display.py 中的 _create_code_block_html 方法
# 用途：代码块顶部的语言/文件路径显示区域
CODE_BLOCK_HEADER_STYLE = """
    background-color: #f1f1f1;
    padding: 8px 16px;
    border-bottom: 1px solid #e1e4e8;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    font-size: 12px;
    color: #24292e;
"""

# 代码块内容样式
# 使用位置：chat_display.py 中的 _create_code_block_html 方法
# 用途：代码块的主体内容区域
CODE_BLOCK_CONTENT_STYLE = """
    margin: 0;
    padding: 16px;
    overflow-x: auto;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
    font-size: 13px;
    line-height: 1.45;
    color: #24292e;
    background-color: #f6f8fa;
"""

# 聊天显示区域样式
# 使用位置：chat_display.py 中的 ChatDisplay 类
# 用途：整个聊天记录显示区域的样式
TEXT_DISPLAY_STYLE = """
    QTextBrowser {
        background-color: #ffffff;
        border: none;
        border-radius: 1px;
        padding: 1px;
    }
"""

# 消息分隔样式
# 使用位置：chat_display.py 中的多个方法
# 用途：用于在不同消息之间添加间距
MESSAGE_SEPARATOR_STYLE = """
    display: block;
    width: 100%;
    clear: both;
    margin: 10px 0;
"""

# 输入框样式
INPUT_TEXTEDIT_STYLE = """
    QTextEdit {
        border: 2px solid #4CAF50;  /* 边框颜色和宽度 */
        border-radius: 10px;  /* 圆角 */
        background-color: #f9f9f9;  /* 背景颜色 */
        padding: 2px;  /* 内边距 */
        font-size: 13px;  /* 字体大小 */
        color: #333;  /* 字体颜色 */
    }
    QTextEdit:focus {
        border-color: #66afe9;  /* 聚焦时的边框颜色 */
        outline: none;  /* 移除默认的聚焦边框 */
    }
"""

# 发送按钮样式
SEND_BUTTON_STYLE = """
    QPushButton {
        background-color: #4CAF50;  /* 按钮背景颜色 */
        color: white;  /* 按钮文字颜色 */
        border-radius: 5px;  /* 圆角 */
        font-size: 14px;  /* 字体大小 */
        padding: 10px;  /* 内边距 */
    }
    QPushButton:hover {
        background-color: #45a049;  /* 悬停时的背景颜色 */
    }
    QPushButton:pressed {
        background-color: #3e8e41;  /* 按下时的背景颜色 */
    }
"""

# 错误消息样式
ERROR_MESSAGE_STYLE = """
    display: inline-block;
    background-color: #FFE4E4;
    border-radius: 10px;
    padding: 10px;
    max-width: 80%;
    color: #FF4444;
    border: 1px solid #FFB6B6;
"""

# 代码样式
CODE_STYLE = """
    display: block;
    white-space: pre;
    word-wrap: normal;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
"""

DISABLED_INPUT_STYLE = """
QLineEdit:disabled {
    background-color: #F0F0F0;
    border: 1px solid #CCCCCC;
    border-radius: 3px;
    padding: 5px;
    color: #666666;
}
"""

# 蓝色按钮样式（用于保存编辑状态）
BLUE_BUTTON_STYLE = """
    QPushButton {
        background-color: #1890ff;
        color: white;
        border-radius: 4px;
        font-size: 13px;
    }
    QPushButton:hover {
        background-color: #40a9ff;
    }
"""
  